/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.tesoreria.beans;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import org.cip.esymons.general.util.ControladorAbstracto;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.model.SelectItem;
import org.cip.esymons.colegiatura.bc.ColegiadoFacadeLocal;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.bc.ColegiadoEspecialidadFacadeLocal;
import org.cip.esymons.general.bc.DireccionPersonaFacadeLocal;
import org.cip.esymons.general.be.ColegiadoEspecialidad;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.util.FormatoExportacion;
import org.cip.esymons.general.util.Reporteador;
import org.cip.esymons.general.util.Utiles;
import org.cip.esymons.tesoreria.adapters.DeudaPorNumeroCuotas;
import org.cip.esymons.tesoreria.adapters.DeudaPorTipo;
import org.cip.esymons.tesoreria.bc.DocumentoPagoDelegate;
import org.cip.esymons.tesoreria.bc.EjecutarPagoLocal;
import org.cip.esymons.tesoreria.bc.MovimientoCuentaDelegate;
import org.cip.esymons.tesoreria.bc.TipoCambioDelegate;
import org.cip.esymons.tesoreria.bc.TipoDocumentoTesoreriaDelegate;
import org.cip.esymons.tesoreria.bc.TipoMonedaDelegate;
import org.cip.esymons.tesoreria.bc.VotacionColegiadoFacadeLocal;
import org.cip.esymons.tesoreria.be.DetDocupago;
import org.cip.esymons.tesoreria.be.DetPagoAgrupado;
import org.cip.esymons.tesoreria.be.DocumentoPago;
import org.cip.esymons.tesoreria.be.EnumCondicionalesNumericos;
import org.cip.esymons.tesoreria.be.EnumEstadoDocumentoPago;
import org.cip.esymons.tesoreria.be.EnumEstadoMovimiento;
import org.cip.esymons.tesoreria.be.EnumEstadoVotacionColegiado;
import org.cip.esymons.tesoreria.be.TipoCambio;
import org.cip.esymons.tesoreria.be.TipoMoneda;
import org.cip.esymons.tesoreria.be.VotacionColegiado;
import org.cip.esymons.tramite.be.TipoDocumento;

/**
 *@author Ingrid Capuñay
 */
public class DocumentoPagoController extends ControladorAbstracto {

    @EJB
    EjecutarPagoLocal delegado;
    @EJB
    ColegiadoEspecialidadFacadeLocal colegiadoEspecialidadFacadeLocal;
    @EJB
    DireccionPersonaFacadeLocal direccionPersonaFacadeLocal;
    @EJB
    VotacionColegiadoFacadeLocal votacionColegiadoFacadeLocal;
    @EJB
    ColegiadoFacadeLocal colegiadoFacadeLocal;
    private DocumentoPagoDelegate delegadoDocPago;
    private DocumentoPago documentoPago;

    /*Variables Para reporte de colegiados Morosos Por Monto de deuda*/
    private EnumCondicionalesNumericos condicionNumerica;
    private Double valorIngresado1;
    private Double valorIngresado2;
    private MovimientoCuentaDelegate delegadoMovimientoCuenta;
    /*fin de codigo*/
    /*Variables Para reporte de colegiados Morosos Por Nº Cuotas Vencidas*/
    private Integer numCuotasIngresadas;
    private Integer numCuotasIngresadas2;
    private Date fechaMorosidadIngresada;
    private EnumCondicionalesNumericos condicionNumerica2;
    //variables para buscar
    private int tipoPersona = 0;
    private List<DocumentoPago> listaDocumentosPago = new ArrayList();
    private String apePat, apeMat, nombres, dni, cip, raz, ruc, nroDoc;
    private String apePatBe, apeMatBe, nombresBe, dniBe, cipBe;
    private Date fecIniE, fecFinE, fecIniC, fecFinC;
    private String cuenta;
    private TipoDocumento tipoDocumento;
    private TipoMoneda tipoMoneda;
    private EnumEstadoDocumentoPago enumEstadoDocumentoPago;
    //variables para Reporte de Cuenta Corriente X Colegiado
    private String dniCuentaCorriente, cipCuentaCorriente, apellidoPCuentaCorriente, apellidoMCuentaCorriente, nombreColeCuentaCorriente;
    private TipoDocumento tipoDocuCuentaCorriente;
    private TipoMoneda tipoMonedaCuentaCorriente;
    private EnumEstadoDocumentoPago estadoDocPagoCuentaCorriente;
    private List<DocumentoPago> listaDocumentosPagoCuentaCorriente = new ArrayList();
    private TipoMonedaDelegate delegadoTipoMoneda;
    private TipoDocumentoTesoreriaDelegate delegadoTipoDocumentoPago;
    private Date fecIniEmiCC, fecFinEmiCC, fecIniPagCC, fecFinPagCC;
    private TipoCambioDelegate tipoCambioDelegate;
    //fin de Reporte
    //VARIABLES PARA REPORTE DE INGRESOS DIARIOS
    private Date fecFinPagID;
    private int tipoReporteIngreso = 0;

    //FIN DE REPORTE
    public DocumentoPagoController() {
        tipoCambioDelegate = new TipoCambioDelegate();
        delegadoDocPago = new DocumentoPagoDelegate();
        delegadoMovimientoCuenta = new MovimientoCuentaDelegate();
        delegadoTipoMoneda = new TipoMonedaDelegate();
        delegadoTipoDocumentoPago = new TipoDocumentoTesoreriaDelegate();
        valorIngresado1 = null;
        valorIngresado2 = null;
        condicionNumerica = EnumCondicionalesNumericos.Entre;
        condicionNumerica2 = EnumCondicionalesNumericos.Entre;
        numCuotasIngresadas = null;
        numCuotasIngresadas2 = null;
        fechaMorosidadIngresada = null;
        tipoMoneda = delegadoTipoMoneda.buscarMonedaDefecto();
        enumEstadoDocumentoPago = EnumEstadoDocumentoPago.PAGADO;
        tipoDocumento = delegadoTipoDocumentoPago.ubicarUnDocPagoXIngresoPorNombre("Boleta");
        //para Reporte de Cuenta Corriente
        estadoDocPagoCuentaCorriente = EnumEstadoDocumentoPago.PAGADO;
        tipoMonedaCuentaCorriente = delegadoTipoMoneda.buscarMonedaDefecto();
        tipoDocuCuentaCorriente = delegadoTipoDocumentoPago.ubicarUnDocPagoXIngresoPorNombre("Recibo");
        //fin de reporte
    }

    /**
     * @return the documentoPago
     */
    public DocumentoPago getDocumentoPago() {
        return documentoPago;
    }

    /**
     * @param documentoPago the documentoPago to set
     */
    public void setDocumentoPago(DocumentoPago documentoPago) {
        this.documentoPago = documentoPago;
    }

    public String anularDocumentoPago() {
        try {
            if (documentoPago == null) {
                ControladorAbstracto.warn("No existe documento Pago para ese codigo.");
            } else {
                documentoPago.setEstado(EnumEstadoDocumentoPago.ANULADO);
                delegadoDocPago.edit(documentoPago);
                for (DetPagoAgrupado depa : documentoPago.getListaDetPagoAgrupados()) {
                    for (DetDocupago dpa : depa.getDetDocupagoList()) {
                        dpa.getMcuCodigo().setMcuSaldo(dpa.getMcuCodigo().getMcuMonto());
                        dpa.getMcuCodigo().setEstado(EnumEstadoMovimiento.Impaga);
                        delegadoMovimientoCuenta.edit(dpa.getMcuCodigo());
                    }
                    Colegiado col = colegiadoFacadeLocal.buscaColegiado(depa.getDocCodigo().getFkSolCodigo().getSolCodigo());
                    if (col != null) {
                        if (depa.getCuentaIngreso() != null) {
                            if (depa.getCuentaIngreso().getCuentaIngresoElectoral() != null) {
                                VotacionColegiado vc = votacionColegiadoFacadeLocal.obtenerVotacionPorProcesoParaAnulacion(col, depa.getCuentaIngreso().getCuentaIngresoElectoral().getProcesoElectoral());
                                if (vc != null) {
                                    vc.setEstado(EnumEstadoVotacionColegiado.Omiso);
                                    votacionColegiadoFacadeLocal.edit(vc);

                                }
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            ControladorAbstracto.warn("Sucedió un error grave.");
        }
        return null;
    }

    public String busquedaAvanzada() {
        BusquedaPersonasController bpc = (BusquedaPersonasController) getBean("busquedaPersonasController");
        bpc.setTipoPersonaSeleccionada("NA");
        bpc.setControladorSolicitante(1);
        bpc.setApeMatPerNat(null);
        bpc.setApePatPerNat(null);
        bpc.setDniPerNat(null);
        bpc.setNomPerNat(null);
        bpc.setRazsocPerJur(null);
        bpc.setRucCliente(null);
        return "busquedaAvanzada";
    }

    public String buscarDocumentosPago() {
        String persona = null;
        if (tipoPersona == 0) {
            String cipRealBusComPag = Utiles.devuelveCipCompleto(cip);
            persona = "-" + apePat + ";" + "-" + apeMat + ";" + "-" + nombres + ";" + "-" + dni + ";" + "-" + cipRealBusComPag;
        } else {
            persona = "-" + (raz == null ? "" : raz) + ";" + "-" + (ruc == null ? "" : ruc);
        }
        String beneficiario = null;
        beneficiario = "-" + apePatBe + ";" + "-" + apeMatBe + ";" + "-" + nombresBe + ";" + "-" + dniBe + ";" + "-" + cipBe;
        listaDocumentosPago = delegadoDocPago.busquedaDocumentos(tipoPersona, persona, beneficiario, fecIniE, fecFinE, enumEstadoDocumentoPago, nroDoc, tipoMoneda, tipoDocumento, fecIniC, fecFinC, cuenta);
        return null;
    }

    public String buscarDocPagoParaCuentaCorriente() {
        if (apellidoPCuentaCorriente != null || apellidoMCuentaCorriente != null || nombreColeCuentaCorriente != null || dniCuentaCorriente != null || cipCuentaCorriente != null) {
            int tipoPersonaCC = 0; /*Natural*/
            String cipRealCuenCorr = Utiles.devuelveCipCompleto(cipCuentaCorriente);
            String colegiadoCC = null;
            colegiadoCC = "-" + apellidoPCuentaCorriente + ";" + "-" + apellidoMCuentaCorriente + ";" + "-" + nombreColeCuentaCorriente + ";" + "-" + dniCuentaCorriente + ";" + "-" + cipRealCuenCorr;
            String beneficiarioPagoCC = null;
            listaDocumentosPagoCuentaCorriente = delegadoDocPago.busquedaDocumentos(tipoPersonaCC, colegiadoCC, beneficiarioPagoCC, fecIniEmiCC, fecFinEmiCC, estadoDocPagoCuentaCorriente, null, tipoMonedaCuentaCorriente, tipoDocuCuentaCorriente, fecIniPagCC, fecFinPagCC, null);
        } else {
            ControladorAbstracto.warn("Debe Ingresar al menos un Dato del Colegiado");
        }
        return null;
    }

    public SelectItem[] getTipoCondicionalNumericoItems() {
        try {
            SelectItem[] select = new SelectItem[EnumCondicionalesNumericos.values().length];
            int cont = 0;
            for (EnumCondicionalesNumericos e : EnumCondicionalesNumericos.values()) {
                select[cont] = new SelectItem(e, e.name());
                cont++;
            }
            return select;
        } catch (Exception ex) {
            SelectItem[] select = new SelectItem[1];
            select[0] = new SelectItem(null, "No existen Condicionales Numéricos");
            return select;
        }
    }

    public SelectItem[] getEnumEstadosDocumentoPagoItems() {
        try {
            SelectItem[] select = new SelectItem[EnumEstadoDocumentoPago.values().length];
            int cont = 0;
            for (EnumEstadoDocumentoPago e : EnumEstadoDocumentoPago.values()) {
                select[cont] = new SelectItem(e, e.name());
                cont++;
            }
            return select;
        } catch (Exception ex) {
            SelectItem[] select = new SelectItem[1];
            select[0] = new SelectItem(null, "No existen Estados");
            return select;
        }
    }

    public String reporteBoleta() {
        Reporteador reporteador = new Reporteador();
        Map parametros = new HashMap();
        List<DocumentoPago> lista = new ArrayList<DocumentoPago>();
        documentoPago.getListaDetPagoAgrupadosOrdenados();
        lista.add(documentoPago);
        String nombretd2 = documentoPago.getFkTdoCodigo().getTdoDesc();
        String direSol2 = direccionPersonaFacadeLocal.buscarDireccionPersona(documentoPago.getFkSolCodigo().getSolCodigo());
        if (direSol2 != null) {
            parametros.put("direccion", direSol2);
        } else {
            parametros.put("direccion", "");
        }
        if (nombretd2.equals("Boleta")) {
            parametros.put("mostrarDNIoRUC", ((PersonaNatural) documentoPago.getFkSolCodigo()).getPerNroDNI());
            reporteador.exportarReporte("boleta", FormatoExportacion.pdf, lista, parametros);
        } else {
            if (nombretd2.equals("Factura")) {
                parametros.put("mostrarDNIoRUC", documentoPago.getFkSolCodigo().getSolRUC());
                reporteador.exportarReporte("factura", FormatoExportacion.pdf, lista, parametros);
            } else {
                String cipColeg = documentoPago.getFkSolCodigo().getNumeroCIP();
                if (cipColeg != null) {
                    ColegiadoEspecialidad especialidadYcapituloColegiado = colegiadoEspecialidadFacadeLocal.colegiadoEsp(documentoPago.getFkSolCodigo().getSolCodigo());
                    if (especialidadYcapituloColegiado != null) {
                        parametros.put("capituloColegiado", especialidadYcapituloColegiado.getEcaCodigo().getCapCodigo().getCapDescripcion());
                        parametros.put("especialidadPrincipalCole", especialidadYcapituloColegiado.getEcaCodigo().getEspCodigo().getEspDescripcion());
                    }
                }
                reporteador.exportarReporte("recibo", FormatoExportacion.pdf, lista, parametros);
            }
        }
        return null;

    }

    public String reporteColegiadosMorososXMontoDeuda() throws SQLException {
        boolean validacionParaCondicionalEntre = false;
        boolean validacionParaOtroCondicional = false;
        if (condicionNumerica.equals(EnumCondicionalesNumericos.Entre)) {
            if (valorIngresado1 != null) {
                if (valorIngresado2 != null) {
                    if (valorIngresado2 > valorIngresado1) {
                        validacionParaCondicionalEntre = true;
                    } else {
                        ControladorAbstracto.warn("El Segundo Monto de Deuda debe ser Mayor que el Primero para el Reporte");
                        return null;
                    }
                } else {
                    ControladorAbstracto.warn("Ingrese el Segundo Monto de Deuda para el Reporte");
                    return null;
                }
            } else {
                ControladorAbstracto.warn("Ingrese el Primer Monto de Deuda para el Reporte");
                return null;
            }
        } else {
            if (valorIngresado1 != null) {
                validacionParaOtroCondicional = true;
            } else {
                ControladorAbstracto.warn("Ingrese un Monto de Deuda para el Reporte");
                return null;
            }

        }
        if (validacionParaCondicionalEntre == true || validacionParaOtroCondicional == true) {
            List<DeudaPorTipo> lisDeudasColMorosos = delegadoMovimientoCuenta.mostrarDeudaXTipoDeColegiadosMorosos(condicionNumerica, valorIngresado1, valorIngresado2);
            if (lisDeudasColMorosos != null) {
                if (lisDeudasColMorosos.size() > 0) {
                    Reporteador reporteador = new Reporteador();
                    String tr = ControladorAbstracto.getRequestParameter("tipoReporte");
                    if (tr.equals("pdf")) {
                        reporteador.exportarReporte("rptColMorososXMontoDeuda", FormatoExportacion.pdf, lisDeudasColMorosos, null);
                    } else {
                        reporteador.exportarReporte("rptColMorososXMontoDeuda", FormatoExportacion.excel, lisDeudasColMorosos, null);
                    }

                } else {
                    ControladorAbstracto.warn("No existen Colegiados Morosos de acuerdo al Monto(s) de Deuda Ingresado(s)");
                }
            } else {
                ControladorAbstracto.warn("No existe Reporte para los Datos Ingresados");
            }
        } else {
            ControladorAbstracto.warn("No existe Reporte para los Datos Ingresados");
        }
        return null;
    }

    //Reporte de Cuenta Corriente Por Colegiado
    public String reporteCuentaCorrienteXColegiado() throws SQLException {

        if (listaDocumentosPagoCuentaCorriente != null) {
            if (listaDocumentosPagoCuentaCorriente.size() > 0) {
                Reporteador reporteador = new Reporteador();
                String tr2 = ControladorAbstracto.getRequestParameter("tipoReporte");
                if (tr2.equals("pdf")) {
                    reporteador.exportarReporte("rptCuentaCorrienteXCole", FormatoExportacion.pdf, listaDocumentosPagoCuentaCorriente, null);
                } else {
                    reporteador.exportarReporte("rptCuentaCorrienteXCole", FormatoExportacion.excel, listaDocumentosPagoCuentaCorriente, null);
                }
            } else {
                ControladorAbstracto.warn("No existe Cuenta Corriente para el Colegiado");
            }

        } else {
            ControladorAbstracto.warn("No existe Reporte para los Datos Ingresados");
        }
        return null;
    }

    //Fin de Reporte
    //Reporte de Cuenta Corriente Por Colegiado
    public String reporteDeIngresosDiarioMensual() throws SQLException {
        TipoMoneda tipoMonedaID = delegadoTipoMoneda.buscarMonedaDefecto();
        EnumEstadoDocumentoPago estadoDocPagoID = EnumEstadoDocumentoPago.PAGADO;
        Date fecIniPagID;
        fecIniPagID = fecFinPagID;
        List<DocumentoPago> listaDocumentosPagoParaIngresos = new ArrayList<DocumentoPago>();
        List listaDetalle = new ArrayList();
        String nombreReporte = "";
        if (tipoReporteIngreso == 0) {//diario
            listaDocumentosPagoParaIngresos = delegadoDocPago.busquedaDocumentos(null, null, null, null, null, estadoDocPagoID, null, null, null, fecIniPagID, fecFinPagID, null);
            listaDetalle = listaDocumentosPagoParaIngresos;
            for(DocumentoPago dPago:(List<DocumentoPago>)listaDetalle){
                if(!dPago.getTmoCodigo().equals(tipoMonedaID)){
                    TipoCambio tc = tipoCambioDelegate.buscarTipoCambioXFechaytipoMoneda(dPago.getTmoCodigo(), fecIniPagID);
                    dPago.setMonto(Utiles.redondearDouble(dPago.getMonto()*tc.getTpcValor(),1));
                }
            }
            nombreReporte = "rptIngresosDiarios";
        } else {
            nombreReporte = "rptIngresosMensuales";
            Calendar calIni = Calendar.getInstance();
            calIni.setTime(fecFinPagID);
            calIni.set(Calendar.DAY_OF_MONTH, 1);

            Calendar calFin = Calendar.getInstance();
            calFin.setTime(fecFinPagID);
            calFin.set(Calendar.DAY_OF_MONTH, calFin.getActualMaximum(Calendar.DAY_OF_MONTH));

            listaDocumentosPagoParaIngresos = delegadoDocPago.busquedaDocumentos(null, null, null, null, null, estadoDocPagoID, null, null, null, calIni.getTime(), calFin.getTime(), null);
            if (listaDocumentosPagoParaIngresos != null) {
                for (DocumentoPago dp : listaDocumentosPagoParaIngresos) {
                    listaDetalle.addAll(dp.getListaDetPagoAgrupados());
                }
            }
            for(DetPagoAgrupado detPago:(List<DetPagoAgrupado>)listaDetalle){
                if(!detPago.getDocCodigo().getTmoCodigo().equals(tipoMonedaID)){
                    TipoCambio tc = tipoCambioDelegate.buscarTipoCambioXFechaytipoMoneda(detPago.getDocCodigo().getTmoCodigo(), fecIniPagID);
                    detPago.setValor(Utiles.redondearDouble(detPago.getValor()*tc.getTpcValor(),1));
                }
            }
        }
        if (listaDocumentosPagoParaIngresos != null) {
            if (listaDocumentosPagoParaIngresos.size() > 0) {
                Reporteador reporteador = new Reporteador();
                String tr3 = ControladorAbstracto.getRequestParameter("tipoReporte");
                if (tr3.equals("pdf")) {
                    reporteador.exportarReporte(nombreReporte, FormatoExportacion.pdf, listaDetalle, null);
                } else {
                    reporteador.exportarReporte(nombreReporte, FormatoExportacion.excel, listaDetalle, null);
                }
            } else {
                ControladorAbstracto.warn("No existe Ingresos para esa Fecha");
            }

        } else {
            ControladorAbstracto.warn("No existe Reporte para la fecha Seleccionada");
        }
        return null;
    }

    //Fin de Reporte
    public String reporteColegiadosMorososXNumCuotasVencidas() throws SQLException {
        boolean validacionExitosa = false;
        if (numCuotasIngresadas != null) {
            if (fechaMorosidadIngresada != null) {
                if (condicionNumerica2.equals(EnumCondicionalesNumericos.Entre)) {
                    if (numCuotasIngresadas2 != null) {
                        validacionExitosa = true;
                    } else {
                        ControladorAbstracto.warn("Ingrese el Segundo Valor de Nº de Cuotas Vencidas para mostrar el Reporte");
                        return null;
                    }
                } else {
                    validacionExitosa = true;
                }

            } else {
                ControladorAbstracto.warn("Seleccione una Fecha de Morosidad para mostrar el Reporte");
                return null;
            }
        } else {
            ControladorAbstracto.warn("Ingrese el Primer Valor de Nº de Cuotas Vencidas para mostrar el Reporte");
            return null;
        }
        if (validacionExitosa == true) {
            List<DeudaPorNumeroCuotas> lisDeudasColMorosos = delegadoMovimientoCuenta.mostrarDeudaXNumCuotasVencidasDeColegiadosMorosos(fechaMorosidadIngresada, condicionNumerica2, numCuotasIngresadas, numCuotasIngresadas2);
            if (lisDeudasColMorosos != null) {
                if (lisDeudasColMorosos.size() > 0) {
                    Map parametros = new HashMap();
                    Reporteador reporteador = new Reporteador();
                    String tr2 = ControladorAbstracto.getRequestParameter("tipoReporte2");
                    parametros.put("NumeroCuotasVencidas", numCuotasIngresadas);
                    parametros.put("NumeroCuotasVencidas2", numCuotasIngresadas2);
                    parametros.put("CondicionNumerica2", condicionNumerica2.name());
                    if (tr2.equals("pdf")) {
                        reporteador.exportarReporte("rptColMorososXNumCuotasVencidas", FormatoExportacion.pdf, lisDeudasColMorosos, parametros);
                    } else {
                        reporteador.exportarReporte("rptColMorososXNumCuotasVencidas", FormatoExportacion.excel, lisDeudasColMorosos, parametros);
                    }
                } else {
                    ControladorAbstracto.warn("No existen Colegiados Morosos de acuerdo al Número de Cuotas Vencidas Ingresadas");
                }
            } else {
                ControladorAbstracto.warn("No existe Reporte para los Datos Ingresados");
            }
        } else {
            ControladorAbstracto.warn("No existe Reporte para los Datos Ingresados");
        }
        return null;
    }

    public String nuevo() {
        return "nuevo";
    }

    public String cancelarPagos() {
        Long codigo = Long.parseLong(ControladorAbstracto.getRequestParameter("codigo"));
        delegado.init();
        delegado.getRealizarPago().pagarDeuda(codigo);
        delegado.getRealizarPago().cancelar();
        return null;
    }

    /**
     * @return the condicionNumerica
     */
    public EnumCondicionalesNumericos getCondicionNumerica() {
        return condicionNumerica;
    }

    /**
     * @param condicionNumerica the condicionNumerica to set
     */
    public void setCondicionNumerica(EnumCondicionalesNumericos condicionNumerica) {
        this.condicionNumerica = condicionNumerica;
    }

    /**
     * @return the valorIngresado1
     */
    public Double getValorIngresado1() {
        return valorIngresado1;
    }

    /**
     * @param valorIngresado1 the valorIngresado1 to set
     */
    public void setValorIngresado1(Double valorIngresado1) {
        this.valorIngresado1 = valorIngresado1;
    }

    /**
     * @return the valorIngresado2
     */
    public Double getValorIngresado2() {
        return valorIngresado2;
    }

    /**
     * @param valorIngresado2 the valorIngresado2 to set
     */
    public void setValorIngresado2(Double valorIngresado2) {
        this.valorIngresado2 = valorIngresado2;
    }

    /**
     * @return the numCuotasIngresadas
     */
    public Integer getNumCuotasIngresadas() {
        return numCuotasIngresadas;
    }

    /**
     * @param numCuotasIngresadas the numCuotasIngresadas to set
     */
    public void setNumCuotasIngresadas(Integer numCuotasIngresadas) {
        this.numCuotasIngresadas = numCuotasIngresadas;
    }

    /**
     * @return the fechaMorosidadIngresada
     */
    public Date getFechaMorosidadIngresada() {
        return fechaMorosidadIngresada;
    }

    /**
     * @param fechaMorosidadIngresada the fechaMorosidadIngresada to set
     */
    public void setFechaMorosidadIngresada(Date fechaMorosidadIngresada) {
        this.fechaMorosidadIngresada = fechaMorosidadIngresada;
    }

    /**
     * @return the condicionNumerica2
     */
    public EnumCondicionalesNumericos getCondicionNumerica2() {
        return condicionNumerica2;
    }

    /**
     * @param condicionNumerica2 the condicionNumerica2 to set
     */
    public void setCondicionNumerica2(EnumCondicionalesNumericos condicionNumerica2) {
        this.condicionNumerica2 = condicionNumerica2;
    }

    /**
     * @return the numCuotasIngresadas2
     */
    public Integer getNumCuotasIngresadas2() {
        return numCuotasIngresadas2;
    }

    /**
     * @param numCuotasIngresadas2 the numCuotasIngresadas2 to set
     */
    public void setNumCuotasIngresadas2(Integer numCuotasIngresadas2) {
        this.numCuotasIngresadas2 = numCuotasIngresadas2;
    }

    /**
     * @return the listaDocumentosPago
     */
    public List<DocumentoPago> getListaDocumentosPago() {
        return listaDocumentosPago;
    }

    /**
     * @param listaDocumentosPago the listaDocumentosPago to set
     */
    public void setListaDocumentosPago(List<DocumentoPago> listaDocumentosPago) {
        this.listaDocumentosPago = listaDocumentosPago;
    }

    /**
     * @return the apePat
     */
    public String getApePat() {
        return apePat;
    }

    /**
     * @param apePat the apePat to set
     */
    public void setApePat(String apePat) {
        this.apePat = apePat;
    }

    /**
     * @return the apeMat
     */
    public String getApeMat() {
        return apeMat;
    }

    /**
     * @param apeMat the apeMat to set
     */
    public void setApeMat(String apeMat) {
        this.apeMat = apeMat;
    }

    /**
     * @return the nombres
     */
    public String getNombres() {
        return nombres;
    }

    /**
     * @param nombres the nombres to set
     */
    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

    /**
     * @return the dni
     */
    public String getDni() {
        return dni;
    }

    /**
     * @param dni the dni to set
     */
    public void setDni(String dni) {
        this.dni = dni;
    }

    /**
     * @return the cip
     */
    public String getCip() {
        return cip;
    }

    /**
     * @param cip the cip to set
     */
    public void setCip(String cip) {
        this.cip = cip;
    }

    /**
     * @return the raz
     */
    public String getRaz() {
        return raz;
    }

    /**
     * @param raz the raz to set
     */
    public void setRaz(String raz) {
        this.raz = raz;
    }

    /**
     * @return the ruc
     */
    public String getRuc() {
        return ruc;
    }

    /**
     * @param ruc the ruc to set
     */
    public void setRuc(String ruc) {
        this.ruc = ruc;
    }

    /**
     * @return the fecIniE
     */
    public Date getFecIniE() {
        return fecIniE;
    }

    /**
     * @param fecIniE the fecIniE to set
     */
    public void setFecIniE(Date fecIniE) {
        this.fecIniE = fecIniE;
    }

    /**
     * @return the fecFinE
     */
    public Date getFecFinE() {
        return fecFinE;
    }

    /**
     * @param fecFinE the fecFinE to set
     */
    public void setFecFinE(Date fecFinE) {
        this.fecFinE = fecFinE;
    }

    /**
     * @return the fecIniC
     */
    public Date getFecIniC() {
        return fecIniC;
    }

    /**
     * @param fecIniC the fecIniC to set
     */
    public void setFecIniC(Date fecIniC) {
        this.fecIniC = fecIniC;
    }

    /**
     * @return the fecFinC
     */
    public Date getFecFinC() {
        return fecFinC;
    }

    /**
     * @param fecFinC the fecFinC to set
     */
    public void setFecFinC(Date fecFinC) {
        this.fecFinC = fecFinC;
    }

    /**
     * @return the tipoDocumento
     */
    public TipoDocumento getTipoDocumento() {
        return tipoDocumento;
    }

    /**
     * @param tipoDocumento the tipoDocumento to set
     */
    public void setTipoDocumento(TipoDocumento tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    /**
     * @return the enumEstadoDocumentoPago
     */
    public EnumEstadoDocumentoPago getEnumEstadoDocumentoPago() {
        return enumEstadoDocumentoPago;
    }

    /**
     * @param enumEstadoDocumentoPago the enumEstadoDocumentoPago to set
     */
    public void setEnumEstadoDocumentoPago(EnumEstadoDocumentoPago enumEstadoDocumentoPago) {
        this.enumEstadoDocumentoPago = enumEstadoDocumentoPago;
    }

    /**
     * @return the tipoMoneda
     */
    public TipoMoneda getTipoMoneda() {
        return tipoMoneda;
    }

    /**
     * @param tipoMoneda the tipoMoneda to set
     */
    public void setTipoMoneda(TipoMoneda tipoMoneda) {
        this.tipoMoneda = tipoMoneda;
    }

    /**
     * @return the tipoPersona
     */
    public int getTipoPersona() {
        return tipoPersona;
    }

    /**
     * @param tipoPersona the tipoPersona to set
     */
    public void setTipoPersona(int tipoPersona) {
        this.tipoPersona = tipoPersona;
    }

    /**
     * @return the cuenta
     */
    public String getCuenta() {
        return cuenta;
    }

    /**
     * @param cuenta the cuenta to set
     */
    public void setCuenta(String cuenta) {
        this.cuenta = cuenta;
    }

    /**
     * @return the nroDoc
     */
    public String getNroDoc() {
        return nroDoc;
    }

    /**
     * @param nroDoc the nroDoc to set
     */
    public void setNroDoc(String nroDoc) {
        this.nroDoc = nroDoc;
    }

    /**
     * @return the apePatBe
     */
    public String getApePatBe() {
        return apePatBe;
    }

    /**
     * @param apePatBe the apePatBe to set
     */
    public void setApePatBe(String apePatBe) {
        this.apePatBe = apePatBe;
    }

    /**
     * @return the apeMatBe
     */
    public String getApeMatBe() {
        return apeMatBe;
    }

    /**
     * @param apeMatBe the apeMatBe to set
     */
    public void setApeMatBe(String apeMatBe) {
        this.apeMatBe = apeMatBe;
    }

    /**
     * @return the nombresBe
     */
    public String getNombresBe() {
        return nombresBe;
    }

    /**
     * @param nombresBe the nombresBe to set
     */
    public void setNombresBe(String nombresBe) {
        this.nombresBe = nombresBe;
    }

    /**
     * @return the dniBe
     */
    public String getDniBe() {
        return dniBe;
    }

    /**
     * @param dniBe the dniBe to set
     */
    public void setDniBe(String dniBe) {
        this.dniBe = dniBe;
    }

    /**
     * @return the cipBe
     */
    public String getCipBe() {
        return cipBe;
    }

    /**
     * @param cipBe the cipBe to set
     */
    public void setCipBe(String cipBe) {
        this.cipBe = cipBe;
    }

    /**
     * @return the dniCuentaCorriente
     */
    public String getDniCuentaCorriente() {
        return dniCuentaCorriente;
    }

    /**
     * @param dniCuentaCorriente the dniCuentaCorriente to set
     */
    public void setDniCuentaCorriente(String dniCuentaCorriente) {
        this.dniCuentaCorriente = dniCuentaCorriente;
    }

    /**
     * @return the cipCuentaCorriente
     */
    public String getCipCuentaCorriente() {
        return cipCuentaCorriente;
    }

    /**
     * @param cipCuentaCorriente the cipCuentaCorriente to set
     */
    public void setCipCuentaCorriente(String cipCuentaCorriente) {
        this.cipCuentaCorriente = cipCuentaCorriente;
    }

    /**
     * @return the apellidoPCuentaCorriente
     */
    public String getApellidoPCuentaCorriente() {
        return apellidoPCuentaCorriente;
    }

    /**
     * @param apellidoPCuentaCorriente the apellidoPCuentaCorriente to set
     */
    public void setApellidoPCuentaCorriente(String apellidoPCuentaCorriente) {
        this.apellidoPCuentaCorriente = apellidoPCuentaCorriente;
    }

    /**
     * @return the apellidoMCuentaCorriente
     */
    public String getApellidoMCuentaCorriente() {
        return apellidoMCuentaCorriente;
    }

    /**
     * @param apellidoMCuentaCorriente the apellidoMCuentaCorriente to set
     */
    public void setApellidoMCuentaCorriente(String apellidoMCuentaCorriente) {
        this.apellidoMCuentaCorriente = apellidoMCuentaCorriente;
    }

    /**
     * @return the nombreColeCuentaCorriente
     */
    public String getNombreColeCuentaCorriente() {
        return nombreColeCuentaCorriente;
    }

    /**
     * @param nombreColeCuentaCorriente the nombreColeCuentaCorriente to set
     */
    public void setNombreColeCuentaCorriente(String nombreColeCuentaCorriente) {
        this.nombreColeCuentaCorriente = nombreColeCuentaCorriente;
    }

    /**
     * @return the tipoDocuCuentaCorriente
     */
    public TipoDocumento getTipoDocuCuentaCorriente() {
        return tipoDocuCuentaCorriente;
    }

    /**
     * @param tipoDocuCuentaCorriente the tipoDocuCuentaCorriente to set
     */
    public void setTipoDocuCuentaCorriente(TipoDocumento tipoDocuCuentaCorriente) {
        this.tipoDocuCuentaCorriente = tipoDocuCuentaCorriente;
    }

    /**
     * @return the tipoMonedaCuentaCorriente
     */
    public TipoMoneda getTipoMonedaCuentaCorriente() {
        return tipoMonedaCuentaCorriente;
    }

    /**
     * @param tipoMonedaCuentaCorriente the tipoMonedaCuentaCorriente to set
     */
    public void setTipoMonedaCuentaCorriente(TipoMoneda tipoMonedaCuentaCorriente) {
        this.tipoMonedaCuentaCorriente = tipoMonedaCuentaCorriente;
    }

    /**
     * @return the estadoDocPagoCuentaCorriente
     */
    public EnumEstadoDocumentoPago getEstadoDocPagoCuentaCorriente() {
        return estadoDocPagoCuentaCorriente;
    }

    /**
     * @param estadoDocPagoCuentaCorriente the estadoDocPagoCuentaCorriente to set
     */
    public void setEstadoDocPagoCuentaCorriente(EnumEstadoDocumentoPago estadoDocPagoCuentaCorriente) {
        this.estadoDocPagoCuentaCorriente = estadoDocPagoCuentaCorriente;
    }

    /**
     * @return the listaDocumentosPagoCuentaCorriente
     */
    public List<DocumentoPago> getListaDocumentosPagoCuentaCorriente() {
        return listaDocumentosPagoCuentaCorriente;
    }

    /**
     * @param listaDocumentosPagoCuentaCorriente the listaDocumentosPagoCuentaCorriente to set
     */
    public void setListaDocumentosPagoCuentaCorriente(List<DocumentoPago> listaDocumentosPagoCuentaCorriente) {
        this.listaDocumentosPagoCuentaCorriente = listaDocumentosPagoCuentaCorriente;
    }

    /**
     * @return the fecIniEmiCC
     */
    public Date getFecIniEmiCC() {
        return fecIniEmiCC;
    }

    /**
     * @param fecIniEmiCC the fecIniEmiCC to set
     */
    public void setFecIniEmiCC(Date fecIniEmiCC) {
        this.fecIniEmiCC = fecIniEmiCC;
    }

    /**
     * @return the fecFinEmiCC
     */
    public Date getFecFinEmiCC() {
        return fecFinEmiCC;
    }

    /**
     * @param fecFinEmiCC the fecFinEmiCC to set
     */
    public void setFecFinEmiCC(Date fecFinEmiCC) {
        this.fecFinEmiCC = fecFinEmiCC;
    }

    /**
     * @return the fecIniPagCC
     */
    public Date getFecIniPagCC() {
        return fecIniPagCC;
    }

    /**
     * @param fecIniPagCC the fecIniPagCC to set
     */
    public void setFecIniPagCC(Date fecIniPagCC) {
        this.fecIniPagCC = fecIniPagCC;
    }

    /**
     * @return the fecFinPagCC
     */
    public Date getFecFinPagCC() {
        return fecFinPagCC;
    }

    /**
     * @param fecFinPagCC the fecFinPagCC to set
     */
    public void setFecFinPagCC(Date fecFinPagCC) {
        this.fecFinPagCC = fecFinPagCC;
    }

    /**
     * @return the fecFinPagID
     */
    public Date getFecFinPagID() {
        return fecFinPagID;
    }

    /**
     * @param fecFinPagID the fecFinPagID to set
     */
    public void setFecFinPagID(Date fecFinPagID) {
        this.fecFinPagID = fecFinPagID;
    }

    /**
     * @return the tipoReporteIngreso
     */
    public int getTipoReporteIngreso() {
        return tipoReporteIngreso;
    }

    /**
     * @param tipoReporteIngreso the tipoReporteIngreso to set
     */
    public void setTipoReporteIngreso(int tipoReporteIngreso) {
        this.tipoReporteIngreso = tipoReporteIngreso;
    }
}
